package br.edu.ufc.deti.broker.negocio.quotas;

import java.sql.SQLException;
import java.sql.Statement;

import br.edu.ufc.deti.beans.Mensagem;
import br.edu.ufc.deti.beans.PerfClusters;
import br.edu.ufc.deti.broker.persistencia.PrsAutenticacao;
import br.edu.ufc.deti.broker.persistencia.PrsAutorizacao;
import br.edu.ufc.deti.broker.persistencia.PrsCotas;
import br.edu.ufc.deti.connection.DBConnection;

public class NgcCotasUsuario {
	private final String pathServer = "/home/antonio/workspace_helios/perfclusters";
	private final String FILE_NAME_PATH = "/application.properties";
	private PerfClusters perfClusters = new PerfClusters();
	
	private static NgcCotasUsuario instance;
	
	public static synchronized NgcCotasUsuario getInstance(){
		if( instance == null )
			instance = new NgcCotasUsuario();
		return instance;
	}
	
	public PerfClusters verificaCotaUsuario( PerfClusters perfClusters ){
		
		int tempoEstExecApp = 0;//perfClusters.getAplicacao().getTempoEstExecApp();
		int cotaUsuario = getCotaUsuario( perfClusters.getAutenticacao().getID() );
		
		if ( cotaUsuario < tempoEstExecApp ){
			Mensagem mensagem = new Mensagem( "erro", "Usuario Não Possui Cota Suficente para Executar a Aplicação" );
			perfClusters.getMensagens().add( mensagem );
		}

		return perfClusters;
	}

	private int getCotaUsuario( int usuario ) {
		int cotaUsuario = 0;
		DBConnection dbc;
		try {
			dbc = new DBConnection( pathServer+"/database/perfcluster");
			Statement stmt = dbc.getStm();
			cotaUsuario = PrsCotas.getInstance().getCotaUsuario(stmt, usuario);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return cotaUsuario;
	}

	public String updateCotaUsuario(){
		return "";
	}
	public String addCotaUsuario(){
		return "";
	}
	public String removeCotaUsuario(){
		return "";
	}
	
}
